$(document).ready(function() {
	var table = $('table#table').DataTable({
        initComplete: function(settings, json) {
            $("#table").removeClass('dataTable');
            $("#table").parent().addClass('table-responsive');

            $("#table").parent()
              .css('max-height', $(window).height() - $('#query-area').height() - 260)
              .css('height', 'auto')
              .css('overflow-y', 'visible');

            $("#table").on('change', 'input[type="checkbox"]', function () {
                if($(this).prop('checked')) {
                    $(this).closest('tr').addClass('warning');
                } else {
                    $(this).closest('tr').removeClass('warning');
                }
            });

			// 动态添加搜索条件行间距样式
        $('<style>').text(`#query-area .form-group {margin-bottom: 15px;}`).appendTo('head');

        // 动态添加表头居中样式
        $('<style>').text('#table thead th { text-align: center !important; }').appendTo('head');

        // 添加行点击事件处理
			$("#table tbody").on('click', 'tr', function(e) {
				// 避免点击复选框本身时触发两次
				if (!$(e.target).is('input[type="checkbox"]')) {
					// 找到当前行的复选框
					var checkbox = $(this).find('input[type="checkbox"]').first();
					// 切换复选框状态
					checkbox.prop('checked', !checkbox.prop('checked'));
					// 触发change事件以更新行样式
					checkbox.trigger('change');
				}
			});
        },
		ajax : {
			url : baseUrl + '/datatable',
			data : function(d) {
				var todealStatus = $('.search-form').find('select[name="todealStatus"]').val();
				var keyval =  $('.search-form').find('input[name="keyval"]').val();
				var alertInfo = $('.search-form').find('input[name="alertInfo"]').val();
				var alertModule = $('.search-form').find('input[name="alertModule"]').val();
				var alertTime = $('.search-form').find('input[name="alertTime"]').val();
                var alertPlace = $('.search-form').find('input[name="alertPlace"]').val();
				d.todealStatus = todealStatus;
				d.keyval=keyval;
				d.alertInfo = alertInfo;
				d.alertModule = alertModule;
				d.alertTime = alertTime;
				d.alertPlace = alertPlace;
				return d;
			}
		},
		order : [ [ 3, 'desc' ] ],
		columns : [ {
			data : 'id',
			sortable : false,
			defaultContent : '',
			'class' : 'text-center',
			render : function(data, type, row, meta) {
                return '<input type="checkbox" name="ids" value="' + data + '" style="transform: scale(1.5);"/>'
			}
		}, {
			data : 'module',
			name : 'module',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'time',
			name : 'time',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'place',
			name : 'place',
			'class' : 'text-center',
			defaultContent : ''
        }, {
            data : 'keyValue',
            name : 'keyValue',
			'class': 'text-center',
            defaultContent : ''
		}, {
			data : 'info',
			name : 'info',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'level',
			name : 'level',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'resolved',
			name : 'resolved',
			'class': 'text-center',
			render : function(data, type, row, meta) {
				if (data) {
					return "已解决";
				} else {
					return "未解决"
				}
			},
			defaultContent : ''
		}, {
			data : 'resolvedPerson',
			name : 'resolvedPerson',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'resolvedTime',
			name : 'resolvedTime',
			'class': 'text-center',
			defaultContent : ''
		}, {
			data : 'todealStatus',
			name : 'todealStatus',
			'class': 'text-center',
			render : function(data, type, row, meta) {
				if (data == '0') {
					return "需重处理";
				} else if (data == '1') {
					return "已处理";
				} else {
					return "无需重处理";
				}
			},
			defaultContent : ''
		}, {
			data : "id",
			defaultContent : '',
			sortable : false,
			'class' : 'text-center',
			render : function(data, type, row, meta) {
				return ('<div class="btn-group"><a class="btn btn-default btn-xs redo" title="重处理" href="#"><i class="fa fa-refresh"></i></a>&nbsp;&nbsp;');
			}
		} ]
	});

	$('.search-form').on("submit", function(e) {
		e.preventDefault();
		table.draw();
		return false;
	});

	$('#clear').on("click", function(e) {
		$("#interfaceId").val('').trigger("change");
		table.columns().search('').draw();
	});

	$("#interfaceId").select2({
		ajax : {
			url : rootUrl + "/api/system/interfaces",
			data : function(params) {
				params.q = params.term;
				return params;
			}
		}
	});

	table.on('click', '.redo', function() {
		var todealStatus = table.row($(this).parents('tr')).data().todealStatus;
		if (todealStatus != '0') {
			toastr.error("此记录无需重处理");
			return;
		}
		var id = table.row($(this).parents('tr')).data().id;
		$("#redoForm #ids").val(id);
		if (id) {
			bootbox.confirm("确定要重处理数据吗?", function(result) {
				if (result) {
					$("#redoForm").submit();
				}
			});
		}
	});

	$(".btn.redoAll").on("click", function(e) {
		var ids = [];
		$('#table>tbody input:checked').each(function(i, item) {
			ids.push($(item).val());
		});
		$("#redoForm #ids").val(ids.join(","));
		if (ids.length > 0) {
			bootbox.confirm("确定要重处理选中的数据吗?", function(result) {
				if (result) {
					$("#redoForm").submit();
				}
			});
		} else {
			bootbox.alert("请选择要重处理的数据.");
		}
	});

	$('#alterTime').daterangepicker({
		format : 'YYYY-MM-DD HH:mm:ss',
		showDropdowns : true,
		showWeekNumbers : true,
		minDate : moment().add(-1, 'M'),
		maxDate : moment(),
		timePicker : true,
		timePickerIncrement : 1,
		timePicker24Hour : true,
		opens : 'right',
		drops : 'down',
		locale : {
			applyLabel : '确认',
			cancelLabel : '取消',
			fromLabel : '起始时间',
			toLabel : '结束时间',
			customRangeLabel : '自定义',
			firstDay : 1,
			daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
            monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',
                '七月', '八月', '九月', '十月', '十一月', '十二月' ],
		},
		ranges : {
			'今天' : [ moment({hour: 0, minute: 0, second: 0}), moment({hour: 23, minute: 59, second: 59}) ],
			'昨天' : [ moment({hour: 0, minute: 0, second: 0}).subtract(1, 'days'), moment({hour: 23, minute: 59, second: 59}).subtract(1, 'days') ],
			'近7天' : [ moment({hour: 0, minute: 0, second: 0}).subtract(6, 'days'), moment({hour: 23, minute: 59, second: 59}) ],
			'近30天' : [ moment({hour: 0, minute: 0, second: 0}).subtract(29, 'days'), moment({hour: 23, minute: 59, second: 59}) ],
			'当月' : [ moment().startOf('month'), moment().endOf('month') ],
			'上月' : [ moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month') ]
		},
		startDate : moment().subtract(1, 'days'),
		endDate : moment()
	}, function(start, end) {
		$('#timeRange').val(start.format('YYYY-MM-DD HH:mm:ss') + ' - ' + end.format('YYYY-MM-DD HH:mm:ss'));
	});

	$('#alterTime').val(moment({hour: 0, minute: 0, second: 0}).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment({hour: 23, minute: 59, second: 59}).format('YYYY-MM-DD HH:mm:ss'));

	// 导出 动态组织form提交
	  $(".btn.export").on("click", function (e) {
		$("#exportForm .param").remove();
		var $frm = $("#exportForm");
	　　　var array = $('.search-form').serializeArray();
	　　　for (i = 0, length = array.length; i < length; i++) {
		　　　key = array[i].name;
			value = array[i].value;
			$frm.append($('<input class="param" type="hidden" name = "' + key + '" value = "' + value + '" />'));
		}
		var params = table.ajax.params();
		$frm.append($('<input class="param" type="hidden" name="input" value = \'' + JSON.stringify(params) + '\' />'));
		$frm.submit();
		// 阻止默认行为
		e.preventDefault();
		return false;
	  });
})
